package com.itheima.demo06Optional;

import org.junit.Test;

import java.util.Optional;

public class Demo01 {

    //Optional类的基本使用

    @Test
    public void test4(){
//        Optional<String> userName0 = Optional.of("凤姐");
        Optional<String> userName0 = Optional.empty();

        //存在做什么
        //ifPresent:如果有值就调用参数
      /*  userName0.ifPresent(
                s->{
                    System.out.println("有值:" + s);
                }
        );*/

        //存在做的什么,不存在做点什么
        userName0.ifPresentOrElse(
                (s)->{
                    System.out.println("有值 " + s);
                },()->{
                    System.out.println("没有值 ");
                }
        );
    }


    @Test
    public void test02() {
        //1.创建Option对象
        //of只能传入一个具体值,不能传入null
//        Optional<String> op1 = Optional.of("凤姐");
//        Optional<Object> op1 = Optional.of(null);

        //ofNullable:既可以传入具体值，也可以传入null
        //empty：存入的是null
        Optional<String> op2 = Optional.ofNullable("如花");
        Optional<Object> op3 = Optional.ofNullable(null);
        Optional<String> op4 = Optional.ofNullable("如花");
        Optional<String> op5 = Optional.ofNullable(null);
        Optional<Object> op6 = Optional.empty();

        System.out.println("op2 = " + op2);

        System.out.println("op3 = " + op3);

        //2.判断Optional是否有具体的值
        boolean present = op3.isPresent();
        System.out.println("present = " + present);

        System.out.println("op5 = " + op5);
        System.out.println("op6 = " + op6);

    }
}
